package com.ray.bean;

import java.util.List;

import lombok.Data;

@Data
public class ReportBean implements Cloneable{
	private String  id;
	private final boolean locked=false;
	private long sortKey;
	private String company;//公司
	private String orderId;//订单编号
	private String companyOrderId;//公司订单编号
	private String customerId;//客户型号
	private String factoryId;//工厂型号
	private String machining;//加工对象
	private String color;//颜色 
	private String workShopName;//车间名称
	private String procedur;//工序名称
	private String procedurText;//工序名称 
	private String time;//日期
	private Integer qualified;//合格数 
	private Integer noQualified;//不合格数
	private String report;//申报数量
	private String touchPeople;//制单人
	private String touchTime;//制单时间
	private String auditor;//审核人
	private String auditorTime;//审核时间
	private String reportPeople;//申报人
	private String noQualifiedReason;//不合格原因
	private String factoryName;//厂家
	private String deviceId;//设备编号
	private String deviceName;//设备名称
	private String userWorkShop;//报修人所在车间
	private String userProcedure;//返修工序,返修人所在工序
	private String inWorkShop;//接收车间
	private String rowIndex;//行号
	private int status;//状态 0 未审核 1 审核通过  2退回
	private String approvalReason;//审批退回理由
	private String returnException;//修改异常返回
	private int type;//是否是交接入库  1是 0 不是
	private String materialCode;//物料代码
	private String otherId;//报工关联的其他id
	private int otherType;// 类型 无或0   普通报工  1 其他车间交接过来  2交接到仓库   3  交接到外协  4 交接到其他仓库
	private int isApprovalReport;//是否需要审核 0不需要  1 需要
	private String createUser;//制单人id
	private String unit;//物料单位
	private String model;//规格
	
	private String supplierId;//外协供应商id
	private String technology;//外协工艺
	private Integer putoutFlowCycle;//外协周期
	private String putOutRemark;//外协备注
	private String supplierName;//外协供应商id
	private Double unitPrice;//单价
	private int machingType;//加工对象类型  0或无  单个物料  1 整架  2 整框  3  整腿
	private int isCanPassReport;//是否可以超数报工
	
	private int isLaunch;//是否发起申请 0 未发起申请  1发起申请
	private String launchTime;//发起申请
	private String relationSource;//关联源
	private String typeId;//类型id
	private Double sort;//排序
	
	private String processId;//工序id
    private String workShopId;//车间id
    private String relationWorkShopId;//关联车间id
    private String relationProcessId;//关联车间id
    private String approvalIsCanUpdateReportPrice;//公司设置审核人是否可修改报工单价
    private List<String> approvalUserName;//可审核报工的人员名称
    
    
    private int firstApprovalStatus;//一级审核状态，如果公司未足数需要二次审核才有 0 未审核 1已审核 2未审核
    private int isNeedSecondApproval;//公司设置订单未足数是否需要审核0 不需要   1 需要
    private String firstApprovalUser;//需要二级审核的时候一级审核人
    private String firstApprovalUserName;//需要二级审核的时候一级审核人
    private String firstApprovalTime;//需要二级审核的时候一级审核时间
	
	private List<MachingAndColorBean> machingAndColorList;//颜色和加工对象
	
	
	private  double materialCount;//物料单位数量
	private  String  materialUnit;//物料单位
	private  Integer orderCount;//订单数
	
	
	private String additionalMaterialType;//附加物料类型
	private String additionalRowIndex;//附件行号
	private String additionalColor;//附加颜色
	
	private String statusStr;//状态字符串
	
	private String orderType;//订单类型   如果是设备订单需要另外处理
	
	private Integer isOnlyReturnWarehouse;//是否仅退回至仓库
	
	private Integer  isMachineReport;//是否设备报工 1设备报工  0人工报工
	
	
//	public  void  setStatusStr() {
//		String xx="未知";
//		if(this.getStatus()==0){
//			if(this.getFirstApprovalStatus()==1){
//				xx= "已审核,等待二级审核";
//			}else{
//				xx= "未审核";
//			}
//		}else if(this.getStatus()==1){
//			if(this.getIsLaunch()==1){
//				xx= "申请退回";
//			}else{
//				xx= "已审核";
//			}
//		}else{
//			xx= "已退回";
//		}
//		this.statusStr=xx;
//	}
	
	
	public int  getSum() {
           int count=this.getQualified()==null?0:this.getQualified();	
           int noCount=this.getNoQualified()==null?0:this.getNoQualified();
           return count+noCount;
	}
	@Override
	public ReportBean clone() throws CloneNotSupportedException {
		ReportBean stu = null;  
	        try{  
	            stu = (ReportBean)super.clone();  
	        }catch(CloneNotSupportedException e) {  
	            e.printStackTrace();  
	        }  
	     return stu;  
	}
	
}
